package solution;

import java.util.Stack;

public class T0112_3_CheckBrackets {
    //给定一个字符串，字符串中只包括{}[] 这4种字符，请判断括号是否有效。
    //例子：
    //有效的括号：[]{[]}
    //无效的括号：{，{[}]
    public boolean checkBrackets(String s) {
        Stack<Character> stack = new Stack<>();

        for (char ch : s.toCharArray()) {
            if (ch == '{' || ch == '[') {
                stack.push(ch); // 左括号入栈
            } else if (ch == '}') {
                if (stack.isEmpty() || stack.pop() != '{') {
                    return false; // 栈为空或不匹配
                }
            } else if (ch == ']') {
                if (stack.isEmpty() || stack.pop() != '[') {
                    return false; // 栈为空或不匹配
                }
            }
        }

        // 栈为空表示括号匹配成功
        return stack.isEmpty();
    }

}
